import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Partitioner;


/**
 * Text,IntWritable 对应 Mapper 的输出
 */
public class ProvincePartition extends Partitioner<Text, IntWritable > {

    /**
     * 参数：
     * key ― 要分区的键。 value ― 入场值。 numPartitions ― 分区总数。
     * 返回：的 key分区号 。
     */
    @Override
    public int getPartition(Text text, IntWritable integer, int numPartitions) {
        // text 是手机号
        String phone = text.toString();
        String prePhone = phone.substring(0,3);

        // 计算分区
        int partition;

        if("136".equals(prePhone)){
            partition = 0;
        }else if ("137".equals(prePhone)){
            partition = 1;
        }else if("138".equals(prePhone)){
            partition = 2;
        }else {
            partition = 3;
        }

        // 返回分区
        return partition % numPartitions;
    }
}
